package com.zlaidyrac.weride.ui;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;

import com.zlaidyrac.weride.main.Common;
import com.zlaidyrac.weride.main.R;
import com.zlaidyrac.weride.persistence.SearchResult;
import com.zlaidyrac.weride.ui.PoolMyCar.PoolMyCarAsyncTask;
import com.zlaidyrac.weride.webclient.WebClient;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.DatePicker;

public class Ride extends Activity {
	String Sfrom;
	String Sto;
	String Sdate;

	String[] towns = { "Aboyne", " Adikarigoda", " Adikarimulla",
			" Adikkandiya", " Adupe", " Agalawatta", " Agalegedara",
			" Ahugammana", " Akaragama", " Akarangaha", " Akarawita",
			" Akarawita", " Akkaragoda", " Akureliya", " Akurukalawita",
			" Akurumulla", " Alakandupitiya", " Alavi", " Alawala",
			" Alawatupitiya", " Alubomulla", " Alubowila", " Alugolla",
			" Alutepola", " Alutgama", " Alutgama", " Alutgama",
			" Alutgama Bogamuwa", " Alutgama Bogomuwa", " Alutgama East",
			" Alutgama West", " Alutgamwidiya", " Alutgangoda", " Aluthgama",
			" Aluthgamwidiya", " Aluthkade", " Alutkade Tunmanhandiya",
			" Alutkadetenmanhandiya", " Alwis Town", " Amandoluwa",
			" Ambagahawatta", " Ambagaspitiya", " Ambalammulla",
			" Ambalanduwa", " Ambalangoda", " Ambalanmulla", " Ambalayaya",
			" Ambana", " Ambanwita", " Ambatale", " Ambegoda", " Ambepitiya",
			" Ambepussa", " Ambepussa Government Farm", " Ambulgama",
			" Ampitigala", " Amunugoda", " Amunukumbura",
			" Andiambalam Walpola", " Andiambalama", " Andigoda", " Andimalla",
			" Andimulla", " Andiya", " Andupe", " Angampitiya", " Angangoda",
			" Anganpitiya", " Angoda", " Angomuwa", " Angulana",
			" Anguruwatota", " Anuragoda", " Arakagoda", " Arakawila",
			" Aramangoda", " Arambe", " Arambegodella", " Aramonagolla",
			" Arangala", " Arapangama", " Arukgoda", " Arukpassa",
			" Arukwatta", " Arupassa", " Asgeriya", " Asgiriwalpola",
			" Asgiriya", " Assenawatta", " Assennawatta", " Atale",
			" Atgalgoda", " Athagama", " Athgalgoda", " Athgangoda",
			" Atigala", " Attanagalla", " Attidiya", " Atulugama",
			" Atupatdeniya", " Atupotdeniya", " Atupothdeniya", " Atura",
			" Ature", " Aturugiriya", " Atweltota", " Avariwatta",
			" Avissawella", " Awariwatta", "Badahalagoda", " Badalgama",
			" Badalgoda", " Badanagoda", " Badugama", " Badureliya",
			" Baduwatugoda", " Bajjangoda", " Balabowa", " Balagalla",
			" Battaramulla", "Catharine's", " Cinnamon Gardens", " Colombo",
			" Colpetty", " Colombo", "Dadagamuwa", " Dagona", " Dahenpahuwa",
			" Dalugama", " Dalugangoda", " Dalupatgedara", " Dalupotha",
			" Daluwekotuwa", " Dambadurai", " Dambadure", "Egaloya",
			" Egoda Uyana", " Egodawatta", " Egodawatta", " Ekala",
			" Ekalakurunduwatta", " Ekela", " Eladuva", " Eladuwa", " Eladuwa",
			" Elamalawala", " Elamalewala", " Elapiliyawa", " Elapitawala",
			" Elapitiwela", " Elapitiyala", " Eliwila", " Ellakkala",
			" Ellalamulla", " Ellangala", " Elluvapitiya", " Elston",
			" Eluwapitiya", " Embaraluwa", " Enderamulla", " Epambula",
			" Epamulla", " Erabadda", " Erabedda", " Erepolagodella",
			" Erewwala", " Essella", " Eswatta", " Etgala", " Etikehelgalla",
			" Ettukal", " Ettukala", " Etulkotte", " Evariwatta",
			" Ewariwatta", "Fort (Colombo)", "Galagedara", " Galahitiyawa",
			" Galboda", " Galborella", " Galedanda", " Galewatta",
			" Galgamuwa", " Galgomuwa", " Galhena", " Galhetiya", "Habarakada",
			" Haddagoda", " Hakgalla", " Hakkurukumbura", " Hakurukumbura",
			" Hakwadunna", " Halanduruwa", " Halapitiya", " Halawegoda",
			" Halgampitiya", " Hanwella", " Hokandara", " Horana", " Homagama",
			"Iddagoda", " Ihala Hewessa", " Ihala Imbulgoda",
			" Ihala Karannagoda", " Ihala Naragala", " Ihala Neboda",
			" Ihala Wadugoda", " Ihala Welgama", " Ihalapanangala",
			" Ihalayagoda", " Ingiriya", "Ja-Ela", " Jaligoda", " Jaltara",
			" Jambugaswadiya", " Jambureliya", " Jawatta", " Josnell",
			"Kirindiwela", " Kadawatha", " Kalutara", " Kumbuka",
			" Kahatapitiya", " Kiribathgoda", " Kottawa", " Kaduwela",
			" Kaubedda", "Labugama", " Ladduwa", " Langana", " Lansiyawatta",
			" Lathpandura", " Latpandura", " Laulupitiya", " Lenagala",
			" Lenewara", " Leuwanduwa", "Mabima", " Mabima", " Mabodale",
			" Mabogoda", " Mabole", " Mabula", " Mabulgoda", " Madabaddara",
			" Madabawita", " Madakada", " Malabe", " Maharagama", "Nittambuwa",
			" Nugegoda", "Obberiya", " Ogodapola", " Okanduwa", " Olabaduwa",
			" Olaboduwa", " Omatta", " Opalla", " Opata", " Opatha",
			" Opathella", "Panadura", "Radamulla", " Radawadunna", " Radawana",
			" Raddalgoda", " Raddegoda", " Raddoluwa", " Ragama",
			" Rajagiriya", " Rambukkana", " Ramminike", "Samanabedda",
			" Samanabedde", " Sambagama", " Sangarama", " Sapugaskanda",
			" Sapugaskande", " Sarikamulla", " Sarikkamulla",
			" Sayakkaramulla", " Sedawatta", "Tabuwana", " Talagala",
			" Talagama", " Talahena", " Talahena", " Talahera", " Talahitiya",
			" Talangama", " Talangama North", " Talangama South",
			"Uda Kanugala", " Udagama", " Udagama", " Udaganella",
			" Udahamulla", " Udahamulupattiya", " Udakamanpella",
			" Udakamanpelle", " Udakananpella", " Udamapitigama",
			"Vavulagallana", " Veyangoda", " Vitanamulla", "Waddegoda",
			" Wadduwa", " Wadugama", " Wadugoda", " Wadumulla", " Wadumulla",
			" Wadurawa", " Waduruwa", " Waga", " Waga" };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_ride);
		Button search = (Button) findViewById(R.id.search);

		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_dropdown_item_1line, towns);
		final AutoCompleteTextView from = (AutoCompleteTextView) findViewById(R.id.from);
		from.setThreshold(2);
		from.setAdapter(adapter);
		final AutoCompleteTextView to = (AutoCompleteTextView) findViewById(R.id.to);
		to.setThreshold(2);
		to.setAdapter(adapter);

		final DatePicker date = (DatePicker) findViewById(R.id.date);
		search.setOnClickListener(new OnClickListener() {

			public void onClick(View v) {
				Sfrom = from.getText().toString().trim();
				Sto = to.getText().toString().trim();
				Sdate = date.getYear() + "-" + date.getMonth() + "-"
						+ date.getDayOfMonth();
				HashMap<String, String> map = new HashMap<String, String>();
				map.put("from", Sfrom);
				map.put("to", Sto);
				map.put("date", Sdate);
				new RideSearchTask().execute(map);
				
				
			}
		});
	}

	public class RideSearchTask extends AsyncTask<HashMap<String, String>, Void, ArrayList<SearchResult>> {
		protected ProgressDialog progressDialog;
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			progressDialog = ProgressDialog.show(Ride.this, "Loading Search Results", "Please wait...", true, false);
		}
		@Override
		protected ArrayList<SearchResult> doInBackground(HashMap<String, String>... params) {
			ArrayList<SearchResult> mylist = (ArrayList<SearchResult>) WebClient.postRequestForListOfObjects(
					"search", params[0], WebClient.DECODE_OBJECT_TYPE_SEARCHRESULT);
			

			for (SearchResult item : mylist)
				Log.i("Item", item.toString());
			return mylist;
		}
		public void onPostExecute(ArrayList<SearchResult> mylist) {
			super.onPostExecute(mylist);
			progressDialog.dismiss();
			// hash map returned
			Intent intent = new Intent(getApplicationContext(),
						com.zlaidyrac.weride.ui.RideSearchResultsListActivity.class);
			Common.searchResults = mylist;
			startActivity(intent);

		}

	}

}
